using LinFu.AOP.Interfaces;
using LinFu.Proxy.Interfaces;

namespace CoreEx.Common.Proxy
{
    /// <summary>
    /// Represents a class that can wrap itself around a parameterless constructor of an <see cref="IProxy"/> instance.
    /// </summary>
    public interface IConstructorInterceptor
    {
        /// <summary>
        /// This method is called during execution of the target constructor.        
        /// </summary>
        /// <param name="info">The <see cref="IInitalizationInfo"/> associated with the constructor call.</param>
        /// <seealso cref="IInvocationInfo"/>
        void Intercept(IInitalizationInfo info);

    }
}